#include <iostream>
using namespace std;

class Base
{
public:
  int m_a;

protected:
  int m_b;

private:
  int m_c;
};

class Son : public Base
{
public:
  int m_d;
};

// 查看类内存模型（vscode 提供）
// cl /dl reportSingleClassLayout查看的类名 所属文件名
// cl /dl reportSingleClassLayoutSon 03继承中的对象模型.cpp 

void test01()
{
  // 16
  // 在父类中所有非静态成员属性都会被子类继承下去
  // 父类中私有成员属性是被编译器隐藏了，因此访问不到，但是确实被继承下去
  cout << "size of Son = " << sizeof(Son) << endl;
}

int main(int argc, char const *argv[])
{

  test01();

  return 0;
}